<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title> 异步承诺 </title>
</head>
<body>
    
</body>
</html>
<script>
    //21-06-11-白  
    // Promise是一个构造函数，自己身上有all、reject、resolve  原型上有then、catch等方法
    // promise对象有两个特点：对象的状态不受外界影响，一旦状态改变，就不会再变

    // promise:  异步函数
    // Promise是一个构造函数，所以可以 new 出一个Promise的实例;
    // 参数：
           // pending 
    //     第一个参数（函数）： resolve(成功之后的回调函数) 
    //     第二个参数（函数）： reject(失败后的回调函数)
    // 原理:
    //     将处理好的对象传入到resolve函数中，用then方法接收数据；
    // 语法：

    
                const p1 = new Promise(function(resolve,reject){
                    resolve('随便')     // 将对象传入给resolve 
                    console.log('aaa')  // Promise实例中的输出会立即执行，但传入对象中的输出会有一个等待的时间；等待的过程中并不会影响后续代码的执行；
                })
                p1.then(res=>{          //用来接收promise实例成功回调的数据（也就是这里有一个等待时间）
                    console.log(res)    //用then方法接收到对象
                }).catch(res=>{         //用来接收promise实例失败回调的数据
                    console.log(res)  
                })
                // aaa 随便

                
// 手写Promise实现
       /*  var myPromise = new Promise((resolve, reject) => {
           需要执行的代码'
           if (// 异步执行成功 ) {
             resolve(value)
           } else if (//异步执行失败 ) {
             reject(error)
           }})
           myPromise.then((value) => {
           成功后调用, 使用value值}, (error) => {
           失败后调用, 获取错误信息error})*/
                 


</script>